AC_SUBST([RELEASE_VERSION], [release_version])
AC_SUBST([PACKAGE_VERSION], [package_version])
+dnl automake variables we want in pkg-config
+pkglibexecdir=$libexecdir/$PACKAGE
+AC_SUBST(pkglibexecdir)
+
AS_IF([echo "$CFLAGS" | grep -q -E -e '-Werror($| )'], [], [
CC_CHECK_FLAGS_APPEND([WARN_CFLAGS], [CFLAGS], [\
-pipe \
static gboolean opt_version;
static gboolean opt_print_current_dir;
+// TODO: make this public? But no one sane wants to use our C headers
+// to find where to put files. Maybe we can make it printed by the CLI?
+#define _OSTREE_EXT_DIR PKGLIBEXECDIR "/ext"
+
static GOptionEntry global_entries[] = {
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &opt_verbose, "Print debug information during command processing", NULL },
{ "version", 0, 0, G_OPTION_ARG_NONE, &opt_version, "Print version information and exit", NULL },
// Find the first verb (ignoring all earlier flags), then
// check if it is a known native command. Otherwise, try to look it
- // up in $PATH.
+ // up in /usr/lib/ostree/ostree-$cmd or $PATH.
// We ignore argv[0] here, the ostree binary itself is not multicall.
for (guint arg_index = 1; arg_index < argc; arg_index++)
{
return NULL;
}
+
g_autofree gchar *ext_command = g_strdup_printf ("ostree-%s", current_arg);
+
+ /* First, search in our libdir /usr/lib/ostree/ostree-$cmd */
+ g_autofree char *ext_lib = g_strconcat (_OSTREE_EXT_DIR, "/", ext_command, NULL);
+ struct stat stbuf;
+ if (stat (ext_lib, &stbuf) == 0)
+ return g_steal_pointer (&ext_lib);
+
+ /* Otherwise, look in $PATH */
if (g_find_program_in_path (ext_command) == NULL)
return NULL;
-
return g_steal_pointer (&ext_command);
}
--- /dev/null
+#!/bin/bash
+
+# Random misc tests
+
+set -xeuo pipefail
+
+. ${KOLA_EXT_DATA}/libinsttest.sh
+
+echo "1..1"
+date
+
+# Test CLI extensions installed alongside the system
+extdir=/usr/libexec/libostree/ext/
+mkdir -p "${extdir}"
+ln -sr /usr/bin/env ${extdir}/ostree-env
+
+env TESTENV=foo ostree env > out.txt
+assert_file_has_content out.text TESTENV=foo
+rm -vf "${extdir}/ostree-env"
+echo "ok env"
+
+# End test
+date